This invention relates to communications networks consisting of a plurality of intercommunicating stations.
In communications networks, names may identify stations, and addresses may identify the locations of stations in terms of the topology of the network. In order for one station (a "source" station) to transmit a communication to another station (a "destination" station), the source station must have access to the address of the destination station. In any network in which the addresses of stations may change, there must be some means by which a source station that has access to the name of a destination station can obtain access to the address of the destination station. There must also be some means by which the information relating to the addresses of the stations can be updated as the addresses change.
In a known network each station is associated with a "server" station that stores the address of each station with which it is associated, in conjunction with each station's name. The stored information relating the name of the station with its address is known as a "binding". Embedded in the name of each station is a semantic representation of the name of the server station with which it is associated. Each station has access to a table containing the addresses of the server stations.
In this known network, a source station can obtain the name of the server station from the name of the destination station, and then obtain the address of the server station from the table. The source station then transmits a "query" to the server station, asking the server station to transmit to the source station the address of the destination station. If the server station does not have access to the binding, the server station extracts the name of a second server station from the name of the destination station. The second server station is located closer to the destination station. If the second server station does not have access to the binding, the process reiterates until the binding is found.
It is administratively clumsy to require that the name of each station have embedded within it the addresses of several server stations. Moreover, the process of making a series of queries rather than just one query results in delays. Additionally, unless redundancies are built into the network, if a server station "crashes", every station that is associated with the server station will become isolated from the rest of the network. Yet, the use of redundancies will multiply the administrative clumsiness in the naming of the stations.
In other known systems updates of bindings are flooded to every server station, and each query is directed to the server station that is nearest the source station. In yet other known systems, each binding is cached at one of many servers, and all queries flood to all server stations in the network. Flooding is wasteful of network resources, however.
In yet other known systems, all bindings are cached at a single server station for the entire network. If the single server station crashes, however, the entire system will fail. Also, the use of a single server station can create a bottleneck.